In the field of searching for an image of an object in an image that may contain the image of the object, it is known to use a model to search for the object image by using Normalized Correlation Search, Generalized Hough Transforms, or PatMax, sold by Cognex Corporation, Natick Mass, for example. A model is defined herein as a set of acceptable spatial arrangements of features of an object. Examples of models include: geometric models, wire frame models, CAD models, an image of a typical object, an image of an ideal object, an image of a sought object, an edge-detected image of an object, and a Generalized Hough Transformed image of an object. However, when the relationship between the image of the object and the model of the object is described by a non-linear transformation, search speed and robustness may be reduced.
When searching for an image of an object, it is known to use sub-models to accommodate non-linear transformations between the image of the object and the model of the object. A sub-model of an object is a model of a portion of the object. For example, it is known in the art to define a plurality of sub-models (also referred to as "parts") of an object to be found, and then use the plurality of sub-models to find images of portions of the object. In this case, the entire image is searched for images of the portions using each sub-model. Then, the found poses of the sub-models are fit to the corresponding poses of the sub-models in the model of the entire object. (A pose is a generalized position, including location, orientation, scaling, skew, etc.) To accomplish this fit operation, the sub-models must be mutually distinguishable, thereby providing correspondence. Alternatively, the correct correspondence between the sub-models in the image of the entire object and the sub-models in the model must be determined via combinatorial search and verification techniques.
In the above known techniques for searching using sub-models, the specification of the model of the object is made by first defining the individual sub-models of the object, and then defining the model of the object as a spatial arrangement of the sub-models. However, once the model is created in this fashion, changing the model definition or its sub-model definition requires a completely new definition of this spatial arrangement, which can be problematic. Moreover, it is not easy to automatically extract optimized sub-models of the object and to automatically extract the pose of each sub-model within the model. Consequently, the user typically must define the sub-models that are used to locate the image of the object.